home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Tool Chest / Interfaces & Libraries / Interfaces / PInterfaces / Terminals.p < prev    next >
Encoding:
Text File  |  1995-07-06  |  12.3 KB  |  364 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Terminals.p
  3.  
  4.      Contains:    Communications Toolbox Terminal tool Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT Terminals;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __TERMINALS__}
  30. {$SETC __TERMINALS__ := 1}
  31.  
  32. {$I+}
  33. {$SETC TerminalsIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __DIALOGS__}
  38. {$I Dialogs.p}
  39. {$ENDC}
  40. {    Errors.p                                                    }
  41. {        ConditionalMacros.p                                        }
  42. {    Memory.p                                                    }
  43. {        Types.p                                                    }
  44. {        MixedMode.p                                                }
  45. {    Menus.p                                                        }
  46. {        Quickdraw.p                                                }
  47. {            QuickdrawText.p                                        }
  48. {    Controls.p                                                    }
  49. {    Windows.p                                                    }
  50. {        Events.p                                                }
  51. {            OSUtils.p                                            }
  52. {    TextEdit.p                                                    }
  53.  
  54. {$IFC UNDEFINED __CTBUTILITIES__}
  55. {$I CTBUtilities.p}
  56. {$ENDC}
  57. {    StandardFile.p                                                }
  58. {        Files.p                                                    }
  59. {            Finder.p                                            }
  60. {    AppleTalk.p                                                    }
  61.  
  62. {$IFC UNDEFINED __CONNECTIONS__}
  63. {$I Connections.p}
  64. {$ENDC}
  65.  
  66. {$PUSH}
  67. {$ALIGN MAC68K}
  68. {$LibExport+}
  69.  
  70. CONST
  71. { current Terminal Manager version     }
  72.     curTMVersion                = 2;
  73. { current Terminal Manager Environment Record version     }
  74.     curTermEnvRecVers            = 0;
  75. { error codes    }
  76.     tmGenericError                = -1;
  77.     tmNoErr                        = 0;
  78.     tmNotSent                    = 1;
  79.     tmEnvironsChanged            = 2;
  80.     tmNotSupported                = 7;
  81.     tmNoTools                    = 8;
  82.  
  83.     
  84. TYPE
  85.     TMErr = OSErr;
  86.  
  87.  
  88. CONST
  89.     tmInvisible                    = 1 * (2**(0));
  90.     tmSaveBeforeClear            = 1 * (2**(1));
  91.     tmNoMenus                    = 1 * (2**(2));
  92.     tmAutoScroll                = 1 * (2**(3));
  93.     tmConfigChanged                = 1 * (2**(4));
  94.  
  95.     
  96. TYPE
  97.     TMFlags = LONGINT;
  98.  
  99.  
  100. CONST
  101.     selTextNormal                = 1 * (2**(0));
  102.     selTextBoxed                = 1 * (2**(1));
  103.     selGraphicsMarquee            = 1 * (2**(2));
  104.     selGraphicsLasso            = 1 * (2**(3));
  105.     tmSearchNoDiacrit            = 1 * (2**(8));
  106.     tmSearchNoCase                = 1 * (2**(9));
  107.  
  108.     
  109. TYPE
  110.     TMSearchTypes = INTEGER;
  111.  
  112.     TMSelTypes = INTEGER;
  113.  
  114.  
  115. CONST
  116.     cursorText                    = 1;
  117.     cursorGraphics                = 2;
  118.  
  119.     
  120. TYPE
  121.     TMCursorTypes = INTEGER;
  122.  
  123.  
  124. CONST
  125.     tmTextTerminal                = 1 * (2**(0));
  126.     tmGraphicsTerminal            = 1 * (2**(1));
  127.  
  128.     
  129. TYPE
  130.     TMTermTypes = INTEGER;
  131.  
  132.     TermDataBlock = RECORD
  133.         flags:                    TMTermTypes;
  134.         theData:                Handle;
  135.         auxData:                Handle;
  136.         reserved:                LONGINT;
  137.     END;
  138.  
  139.     TermDataBlockPtr = ^TermDataBlock;
  140.     TermDataBlockH = ^TermDataBlockPtr;
  141.     TermDataBlockHandle = ^TermDataBlockPtr;
  142.  
  143.     TermEnvironRec = RECORD
  144.         version:                INTEGER;
  145.         termType:                TMTermTypes;
  146.         textRows:                INTEGER;
  147.         textCols:                INTEGER;
  148.         cellSize:                Point;
  149.         graphicSize:            Rect;
  150.         slop:                    Point;
  151.         auxSpace:                Rect;
  152.     END;
  153.  
  154.     TermEnvironPtr = ^TermEnvironRec;
  155.  
  156.     TMSelection = RECORD
  157.         CASE INTEGER OF
  158.         0: (
  159.             selRect:                    Rect;
  160.            );
  161.         1: (
  162.             selRgnHandle:                RgnHandle;
  163.            );
  164.     END;
  165.  
  166.     TermPtr = ^TermRecord;
  167.     TermHandle = ^TermPtr;
  168.  
  169.     TerminalSendProcPtr = ProcPtr;  { FUNCTION TerminalSend(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; flags: CMFlags): LONGINT; }
  170.     TerminalBreakProcPtr = ProcPtr;  { PROCEDURE TerminalBreak(duration: LONGINT; refCon: LONGINT); }
  171.     TerminalCacheProcPtr = ProcPtr;  { FUNCTION TerminalCache(refCon: LONGINT; theTermData: TermDataBlockPtr): LONGINT; }
  172.     TerminalSearchCallBackProcPtr = ProcPtr;  { PROCEDURE TerminalSearchCallBack(hTerm: TermHandle; refNum: INTEGER; VAR foundRect: Rect); }
  173.     TerminalClikLoopProcPtr = ProcPtr;  { FUNCTION TerminalClikLoop(refCon: LONGINT): BOOLEAN; }
  174.     TerminalEnvironsProcPtr = ProcPtr;  { FUNCTION TerminalEnvirons(refCon: LONGINT; VAR theEnvirons: TermEnvironRec): CMErr; }
  175.     TerminalChooseIdleProcPtr = ProcPtr;  { PROCEDURE TerminalChooseIdle; }
  176.     TerminalToolDefProcPtr = ProcPtr;  { FUNCTION TerminalToolDef(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  177.     TerminalSendUPP = UniversalProcPtr;
  178.     TerminalBreakUPP = UniversalProcPtr;
  179.     TerminalCacheUPP = UniversalProcPtr;
  180.     TerminalSearchCallBackUPP = UniversalProcPtr;
  181.     TerminalClikLoopUPP = UniversalProcPtr;
  182.     TerminalEnvironsUPP = UniversalProcPtr;
  183.     TerminalChooseIdleUPP = UniversalProcPtr;
  184.     TerminalToolDefUPP = UniversalProcPtr;
  185.  
  186.     TermRecord = RECORD
  187.         procID:                    INTEGER;
  188.         flags:                    TMFlags;
  189.         errCode:                TMErr;
  190.         refCon:                    LONGINT;
  191.         userData:                LONGINT;
  192.         defProc:                TerminalToolDefUPP;
  193.         config:                    Ptr;
  194.         oldConfig:                Ptr;
  195.         environsProc:            TerminalEnvironsUPP;
  196.         reserved1:                LONGINT;
  197.         reserved2:                LONGINT;
  198.         tmPrivate:                Ptr;
  199.         sendProc:                TerminalSendUPP;
  200.         breakProc:                TerminalBreakUPP;
  201.         cacheProc:                TerminalCacheUPP;
  202.         clikLoop:                TerminalClikLoopUPP;
  203.         owner:                    WindowPtr;
  204.         termRect:                Rect;
  205.         viewRect:                Rect;
  206.         visRect:                Rect;
  207.         lastIdle:                LONGINT;
  208.         selection:                TMSelection;
  209.         selType:                TMSelTypes;
  210.         mluField:                LONGINT;
  211.     END;
  212.  
  213. CONST
  214.     uppTerminalSendProcInfo = $00002FF0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param): 4 byte result; }
  215.     uppTerminalBreakProcInfo = $000003C0; { PROCEDURE (4 byte param, 4 byte param); }
  216.     uppTerminalCacheProcInfo = $000003F0; { FUNCTION (4 byte param, 4 byte param): 4 byte result; }
  217.     uppTerminalSearchCallBackProcInfo = $00000EC0; { PROCEDURE (4 byte param, 2 byte param, 4 byte param); }
  218.     uppTerminalClikLoopProcInfo = $000000D0; { FUNCTION (4 byte param): 1 byte result; }
  219.     uppTerminalEnvironsProcInfo = $000003E0; { FUNCTION (4 byte param, 4 byte param): 2 byte result; }
  220.     uppTerminalChooseIdleProcInfo = $00000000; { PROCEDURE ; }
  221.     uppTerminalToolDefProcInfo = $0000FEF0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; }
  222.  
  223. FUNCTION NewTerminalSendProc(userRoutine: TerminalSendProcPtr): TerminalSendUPP;
  224.     {$IFC NOT GENERATINGCFM }
  225.     INLINE $2E9F;
  226.     {$ENDC}
  227.  
  228. FUNCTION NewTerminalBreakProc(userRoutine: TerminalBreakProcPtr): TerminalBreakUPP;
  229.     {$IFC NOT GENERATINGCFM }
  230.     INLINE $2E9F;
  231.     {$ENDC}
  232.  
  233. FUNCTION NewTerminalCacheProc(userRoutine: TerminalCacheProcPtr): TerminalCacheUPP;
  234.     {$IFC NOT GENERATINGCFM }
  235.     INLINE $2E9F;
  236.     {$ENDC}
  237.  
  238. FUNCTION NewTerminalSearchCallBackProc(userRoutine: TerminalSearchCallBackProcPtr): TerminalSearchCallBackUPP;
  239.     {$IFC NOT GENERATINGCFM }
  240.     INLINE $2E9F;
  241.     {$ENDC}
  242.  
  243. FUNCTION NewTerminalClikLoopProc(userRoutine: TerminalClikLoopProcPtr): TerminalClikLoopUPP;
  244.     {$IFC NOT GENERATINGCFM }
  245.     INLINE $2E9F;
  246.     {$ENDC}
  247.  
  248. FUNCTION NewTerminalEnvironsProc(userRoutine: TerminalEnvironsProcPtr): TerminalEnvironsUPP;
  249.     {$IFC NOT GENERATINGCFM }
  250.     INLINE $2E9F;
  251.     {$ENDC}
  252.  
  253. FUNCTION NewTerminalChooseIdleProc(userRoutine: TerminalChooseIdleProcPtr): TerminalChooseIdleUPP;
  254.     {$IFC NOT GENERATINGCFM }
  255.     INLINE $2E9F;
  256.     {$ENDC}
  257.  
  258. FUNCTION NewTerminalToolDefProc(userRoutine: TerminalToolDefProcPtr): TerminalToolDefUPP;
  259.     {$IFC NOT GENERATINGCFM }
  260.     INLINE $2E9F;
  261.     {$ENDC}
  262.  
  263. FUNCTION CallTerminalSendProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; flags: CMFlags; userRoutine: TerminalSendUPP): LONGINT;
  264.     {$IFC NOT GENERATINGCFM}
  265.     INLINE $205F, $4E90;
  266.     {$ENDC}
  267.  
  268. PROCEDURE CallTerminalBreakProc(duration: LONGINT; refCon: LONGINT; userRoutine: TerminalBreakUPP);
  269.     {$IFC NOT GENERATINGCFM}
  270.     INLINE $205F, $4E90;
  271.     {$ENDC}
  272.  
  273. FUNCTION CallTerminalCacheProc(refCon: LONGINT; theTermData: TermDataBlockPtr; userRoutine: TerminalCacheUPP): LONGINT;
  274.     {$IFC NOT GENERATINGCFM}
  275.     INLINE $205F, $4E90;
  276.     {$ENDC}
  277.  
  278. PROCEDURE CallTerminalSearchCallBackProc(hTerm: TermHandle; refNum: INTEGER; VAR foundRect: Rect; userRoutine: TerminalSearchCallBackUPP);
  279.     {$IFC NOT GENERATINGCFM}
  280.     INLINE $205F, $4E90;
  281.     {$ENDC}
  282.  
  283. FUNCTION CallTerminalClikLoopProc(refCon: LONGINT; userRoutine: TerminalClikLoopUPP): BOOLEAN;
  284.     {$IFC NOT GENERATINGCFM}
  285.     INLINE $205F, $4E90;
  286.     {$ENDC}
  287.  
  288. FUNCTION CallTerminalEnvironsProc(refCon: LONGINT; VAR theEnvirons: TermEnvironRec; userRoutine: TerminalEnvironsUPP): CMErr;
  289.     {$IFC NOT GENERATINGCFM}
  290.     INLINE $205F, $4E90;
  291.     {$ENDC}
  292.  
  293. PROCEDURE CallTerminalChooseIdleProc(userRoutine: TerminalChooseIdleUPP);
  294.     {$IFC NOT GENERATINGCFM}
  295.     INLINE $205F, $4E90;
  296.     {$ENDC}
  297.  
  298. FUNCTION CallTerminalToolDefProc(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: TerminalToolDefUPP): LONGINT;
  299.     {$IFC NOT GENERATINGCFM}
  300.     INLINE $205F, $4E90;
  301.     {$ENDC}
  302.  
  303. FUNCTION InitTM: TMErr;
  304. FUNCTION TMGetVersion(hTerm: TermHandle): Handle;
  305. FUNCTION TMGetTMVersion: INTEGER;
  306. FUNCTION TMNew({CONST}VAR termRect: Rect; {CONST}VAR viewRect: Rect; flags: TMFlags; procID: INTEGER; owner: WindowPtr; sendProc: TerminalSendUPP; cacheProc: TerminalCacheUPP; breakProc: TerminalBreakUPP; clikLoop: TerminalClikLoopUPP; environsProc: TerminalEnvironsUPP; refCon: LONGINT; userData: LONGINT): TermHandle;
  307. PROCEDURE TMDispose(hTerm: TermHandle);
  308. PROCEDURE TMKey(hTerm: TermHandle; {CONST}VAR theEvent: EventRecord);
  309. PROCEDURE TMUpdate(hTerm: TermHandle; visRgn: RgnHandle);
  310. PROCEDURE TMPaint(hTerm: TermHandle; {CONST}VAR theTermData: TermDataBlock; {CONST}VAR theRect: Rect);
  311. PROCEDURE TMActivate(hTerm: TermHandle; activate: BOOLEAN);
  312. PROCEDURE TMResume(hTerm: TermHandle; resume: BOOLEAN);
  313. PROCEDURE TMClick(hTerm: TermHandle; {CONST}VAR theEvent: EventRecord);
  314. PROCEDURE TMIdle(hTerm: TermHandle);
  315. FUNCTION TMStream(hTerm: TermHandle; theBuffer: UNIV Ptr; theLength: LONGINT; flags: CMFlags): LONGINT;
  316. FUNCTION TMMenu(hTerm: TermHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  317. PROCEDURE TMReset(hTerm: TermHandle);
  318. PROCEDURE TMClear(hTerm: TermHandle);
  319. PROCEDURE TMResize(hTerm: TermHandle; {CONST}VAR newViewRect: Rect);
  320. FUNCTION TMGetSelect(hTerm: TermHandle; theData: Handle; VAR theType: ResType): LONGINT;
  321. PROCEDURE TMGetLine(hTerm: TermHandle; lineNo: INTEGER; VAR theTermData: TermDataBlock);
  322. PROCEDURE TMSetSelection(hTerm: TermHandle; {CONST}VAR theSelection: TMSelection; selType: TMSelTypes);
  323. PROCEDURE TMScroll(hTerm: TermHandle; dh: INTEGER; dv: INTEGER);
  324. FUNCTION TMValidate(hTerm: TermHandle): BOOLEAN;
  325. PROCEDURE TMDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  326. FUNCTION TMSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  327. PROCEDURE TMSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  328. FUNCTION TMSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  329. PROCEDURE TMSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  330. PROCEDURE TMSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  331. PROCEDURE TMSetupPostflight(procID: INTEGER);
  332. FUNCTION TMGetConfig(hTerm: TermHandle): Ptr;
  333. FUNCTION TMSetConfig(hTerm: TermHandle; thePtr: UNIV Ptr): INTEGER;
  334. FUNCTION TMIntlToEnglish(hTerm: TermHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  335. FUNCTION TMEnglishToIntl(hTerm: TermHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  336. PROCEDURE TMGetToolName(id: INTEGER; VAR name: Str255);
  337. FUNCTION TMGetProcID(name: ConstStr255Param): INTEGER;
  338. PROCEDURE TMSetRefCon(hTerm: TermHandle; refCon: LONGINT);
  339. FUNCTION TMGetRefCon(hTerm: TermHandle): LONGINT;
  340. PROCEDURE TMSetUserData(hTerm: TermHandle; userData: LONGINT);
  341. FUNCTION TMGetUserData(hTerm: TermHandle): LONGINT;
  342. FUNCTION TMAddSearch(hTerm: TermHandle; theString: ConstStr255Param; {CONST}VAR where: Rect; searchType: TMSearchTypes; callBack: TerminalSearchCallBackUPP): INTEGER;
  343. PROCEDURE TMRemoveSearch(hTerm: TermHandle; refnum: INTEGER);
  344. PROCEDURE TMClearSearch(hTerm: TermHandle);
  345. FUNCTION TMGetCursor(hTerm: TermHandle; cursType: TMCursorTypes): Point;
  346. FUNCTION TMGetTermEnvirons(hTerm: TermHandle; VAR theEnvirons: TermEnvironRec): TMErr;
  347. FUNCTION TMChoose(VAR hTerm: TermHandle; where: Point; idleProc: TerminalChooseIdleUPP): INTEGER;
  348. PROCEDURE TMEvent(hTerm: TermHandle; {CONST}VAR theEvent: EventRecord);
  349. FUNCTION TMDoTermKey(hTerm: TermHandle; theKey: ConstStr255Param): BOOLEAN;
  350. FUNCTION TMCountTermKeys(hTerm: TermHandle): INTEGER;
  351. PROCEDURE TMGetIndTermKey(hTerm: TermHandle; id: INTEGER; VAR theKey: Str255);
  352. PROCEDURE TMGetErrorString(hTerm: TermHandle; id: INTEGER; VAR errMsg: Str255);
  353.  
  354. {$ALIGN RESET}
  355. {$POP}
  356.  
  357. {$SETC UsingIncludes := TerminalsIncludes}
  358.  
  359. {$ENDC} {__TERMINALS__}
  360.  
  361. {$IFC NOT UsingIncludes}
  362.  END.
  363. {$ENDC}
  364.